#include<bits/stdc++.h>
using namespace std;

void to_num(string str,int& numa,int& numb){
    // cout<<str<<endl;
    string s="";
    string s1="";
    string s2="";
    int num1=0;
    int num2=0;
    for(int i=0;i<str.size();++i){
        // cout<<str[i]<<endl;
        if(str[i]!='+'){
            s=s+str[i];
        }
        else{
            s1=s;
            s="";
        }
    }
    s2=s;
    for(int i=0;i<s1.size();++i){
        num1 = num1 + (s1[i]-'0')*pow(10,s1.size()-1-i);
    }
    for(int i=0;i<s2.size();++i){
        num2 = num2 + (s2[i]-'0')*pow(10,s2.size()-1-i);
    }
    // cout<<s1<<" "<<s2<<endl;
    numa=num1;
    numb=num2;
    // cout<<numa<<" "<<numb<<endl;
}

char to_c(int i){
    if(i==0){
        return 'A';
    }
    if(i==1){
        return 'B';
    }
    if(i==2){
        return 'C';
    }
    if(i==4){
        return 'D';
    }
    if(i==5){
        return 'E';
    }
    if(i==6){
        return 'F';
    }
    return 'A';
}

int main(int argc, char const *argv[])
{
    /* code */
    int N,C;
    while(cin>>N>>C){
        vector<vector<int>> a(N,vector<int>(7));
        // vector<vector<bool>> hash;
        unordered_map<string,bool> hash;
        for(int i=0;i<N;++i){
            string s;
            cin>>s;
            // cout<<s<<endl;
            int pos=0;
            int flag=0;
            for(int j=0;j<s.size();++j){
                if(s[j]=='*'){
                    a[i][pos]=1;
                    ++pos;
                }
                if(s[j]=='.'){
                    a[i][pos]=0;
                    string str_temp = to_string(i)+"+"+to_string(pos);
                    hash[str_temp] = false;
                    ++pos;
                }
                if(s[j]=='|'){
                    if(flag==0){
                        ++flag;
                    }
                    else{
                        ++pos;
                    }
                }
            }
            a[i][3]=1;
        }
        if(C>hash.size()){
            cout<<"FAILED"<<endl;
        }
        else{

        }
        int res =0;
        vector<string> vec_res;
        for(int i=0;i<C;++i){
            for(auto j:hash){
                if(j.second==false){
                    // cout<<j.first<<endl;
                    int flag=0;
                    int a,b;
                    to_num(j.first,a,b);
                    // cout<<a<<" "<<b<<endl;
                    // j.second=true;
                    for(auto k:hash){
                        int aa,bb;
                        if(k.second==true){
                            to_num(k.first,aa,bb);
                            if(abs(a-aa)<2 || abs(b-bb)<2){
                                flag=1;
                                break;
                            }
                        }  
                    }
                    if(flag==0){
                        j.second=true;
                        // cout<<j.second<<endl;
                        a = a;
                        char c=to_c(b);
                        cout<<a<<" "<<char(c)<<endl;
                        string s_1=to_string(a)+to_string(c);
                        // cout<<s_1<<endl;
                        // cout<<a<<endl;
                        // cout<<c<<endl;
                        vec_res.emplace_back(s_1);
                        ++res;
                        break;
                    }
                    else{
                        continue;
                    }
                }
            }
        }
        if(res==C){
            cout<<"SUCCESS"<<endl;
            for(auto i:vec_res){
                // cout<<i<<endl;
            }
        }
        else{
            cout<<"FAILED"<<endl;
        }
        
        // for(auto i:hash){
        //     // cout<<i.first<<" "<<i.second<<endl;
        //     // to_num(i.first);
        // }
        // for(auto i:a){
        //     for(auto j:i){
        //         cout<<j<<" ";
        //     }
        //     cout<<endl;
        // }
    }
    return 0;
}
